The present invention relates to persistent storage managers. More specifically, the invention relates to persistent storage managers for client/server environments.
The processing power of personal computers is increasing at an amazing rate. For example, it has been estimated that today""s personal computers have more processing power than the computers that were first utilized to put men on the moon. Of course, with the increase in processing power, personal computers have also become quite complex.
One area where the complexities of personal computers has created a wealth of problems is the installation, maintenance (including removal) and upgrading of software applications and hardware. As administrators spend more and more of their time installing, maintaining and upgrading personal computers, they have less and less time to work on servers, networks, plan for the future, and the like.
One solution to the rising complexities of personal computers is to simplify the personal computer. For example, a xe2x80x9cnetwork computerxe2x80x9d is generally a simplified personal computer that may sacrifice a little processing power to achieve a simplified platform. A network computer may include a processor that performs most processing functions, a read-only memory (xe2x80x9cROMxe2x80x9d) that stores bootup information and random access memory (xe2x80x9cRAMxe2x80x9d) to store data while the network computer is operating. Persistent non-volatile mass storage, such as a local hard drive, and other complex hardware (e.g., graphics cards) are typically conspicuously absent in a network computer.
In operation, a network computer may interrogate the hardware at bootup to determine the hardware that is available. Additionally, the network computer may download software applications from a server computer over a network. Since the network computer typically has a simpler hardware configuration than traditional personal computers, it is easier for developers to develop software applications. Additionally, since software applications are downloaded at startup, software applications can be upgraded and maintained once, at the server computer, instead of multiple times for each individual personal computer.
Although network computers may include ROM, they may not have non-volatile storage for writing, such as a hard drive. Data that is stored in non-volatile storage is also called persistent data because it xe2x80x9cpersistsxe2x80x9d even after the computer is turned off (or crashes). Accordingly, it would be desirable to have innovative managers of persistent data in client/server environments.
In general, embodiments of the present invention provide innovative managers of persistent data. As an example, in a client/server environment, a persistent manager object may be initialized on both the client and server subsystems. The persistent manager objects may be instances of the same persistent manager class. The persistent manager object on the client subsystem may receive a request to store persistent data and the persistent manager object on the client sends the request to the persistent manager object on the server subsystem. The persistent manager object on the scrver subsystem may then store the persistent data to make it subsequently available for the client subsystem. Several embodiments of the invention are described below.
In one embodiment, a method for managing persistent data in a client/server environment includes instantiating a first persistent manager object on a client subsystem, where the first persistent manager object is an instance of a persistent manager class. The first persistent manager object on the client subsystem receives a request regarding persistent data and sends the request to a second persistent manager object on a server subsystem, where the second persistent manager object being is an instance of the same persistent manager class. The second persistent manager object then fulfills the request on the server subsystem. The request may be to store, retrieve or delete persistent data.
In another embodiment, method for initializing a client subsystem includes instantiating a first persistent manager object on a client subsystem, the first persistent manager object being an instance of a persistent manager class. The first persistent manager object on the client subsystem sends a request for initialization data to a second persistent manager object on a server subsystem, the second persistent manager object being an instance of the same persistent manager class. The second persistent manager object fulfills the request on the server subsystem by retrieving the initialization data from a persistent storage. In preferred embodiments, initialization data stored on the client subsystem is coalesced with the initialization data from the persistent storage.
Other features and advantages of the invention will become readily apparent upon review of the following detailed description in association with the accompanying drawings. In the drawings, the same reference numerals will be used to indicate similar structure.